package br.com.AC.bean;

import java.sql.Time;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import br.com.AC.entidades.Consulta;
import br.com.AC.entidades.Medico;
import br.com.AC.entidades.Usuario;
import br.com.AC.modelo.MedicoModel;

public class MedicoBean {
	
	
	private String tEspecialidade;
	
	private String tClinica;
	
	private List tDia = new ArrayList();
	
	private List<Integer> tSegDia;
	
	private List<Integer> tTerDia;
	
	private List<Integer> tQuaDia;
	
	private List<Integer> tQuiDia;
	
	private List<Integer> tSexDia;
	
	private List<Integer> tSabDia;
	
	private List<Integer> tDomDia;
	
	private List tPeriodo = new ArrayList();
	
	private List<Integer> tSegPer;
	
	private List<Integer> tTerPer;
	
	private List<Integer> tQuaPer;
	
	private List<Integer> tQuiPer;
	
	private List<Integer> tSexPer;
	
	private List<Integer> tSabPer;
	
	private List<Integer> tDomPer;
	
	private Time tHora;
	private int tHor;

	
	MedicoModel medicoModel = new MedicoModel();
	
	Medico medico = new Medico();
	
	Usuario usuario = new Usuario();
	
  	
	public String incluir()
	{
		if (  tSegDia.size()==0 && tSegPer.size()==0
			&&tTerDia.size()==0 && tTerPer.size()==0
			&&tQuaDia.size()==0 && tQuaPer.size()==0
			&&tQuiDia.size()==0 && tQuiPer.size()==0
			&&tSexDia.size()==0 && tSexPer.size()==0
			&&tSabDia.size()==0 && tSabPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione pelo menos um dia!"));
			return "";
		}
		if (tSegDia.size()>0 && tSegPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione um período na Segunda!"));
			return "";
		}else if(tSegDia.size()==0 && tSegPer.size()>0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione a Segunda!"));
			return "";
		}
		if (tTerDia.size()>0 && tTerPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione um período na Terça!"));
			return "";
		}else if(tTerDia.size()==0 && tTerPer.size()>0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione a Terça!"));
			return "";
		}
		if (tQuaDia.size()>0 && tQuaPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione um período na Quarta!"));
			return "";
		}else if(tQuaDia.size()==0 && tQuaPer.size()>0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione a Quarta!"));
			return "";
		}
		if (tQuiDia.size()>0 && tQuiPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione um período na Quinta!"));
			return "";
		}else if(tQuiDia.size()==0 && tQuiPer.size()>0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione a Quinta!"));
			return "";
		}
		if (tSexDia.size()>0 && tSexPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione um período na Sexta!"));
			return "";
		}else if(tSexDia.size()==0 && tSexPer.size()>0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione a Sexta!"));
			return "";
		}
		if (tSabDia.size()>0 && tSabPer.size()==0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione um período no Sábado!"));
			return "";
		}else if(tSabDia.size()==0 && tSabPer.size()>0){
			FacesContext.getCurrentInstance().addMessage(null, 
			new FacesMessage(FacesMessage.SEVERITY_WARN,"Atenção", "Selecione o Sábado!"));
			return "";
		}
		
		
		System.out.println("Dias : " + tDia + "     Periodos: " + tPeriodo);
		
		System.out.println("Dias de VDD : " +tSegDia+ ", " + tTerDia + ", " + tQuaDia + ", " + tQuiDia + ", " + tSexDia + ", " + tSabDia + " ,  " + tDomDia);
		
		System.out.println("Periodos de VDD : " + tSegPer + ", " + tTerPer + ", " + tQuaPer + ", " + tQuiPer + ", " + tSexPer + ", " + tSabPer + " ,  " + tDomPer);
		
		verificarDias();
		
		
		FacesContext contexto = FacesContext.getCurrentInstance();
		HttpSession sessao = (HttpSession) contexto.getExternalContext().getSession(false);
		
		Integer id = (Integer)sessao.getAttribute("idU");
		
		medico = medicoModel.procuraMedico(id); 
		
		String status = medicoModel.inlcuirDiasTrabalho(tDia, tPeriodo, tEspecialidade, tClinica, medico.getCrm());
		
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Incluido", "Agenda incluida com sucesso!"));
		return "Porra";
	}
	
	public void verificarDias()
	{
		tDia = new ArrayList();
		tPeriodo = new ArrayList();
		
		if(tDomDia !=null && !tDomDia.isEmpty())
			{
				tDia.add(tDomDia.get(0));
				tPeriodo.add(tDomPer);
			}
		
		
		if(tSegDia !=null && !tSegDia.isEmpty())
			{
				tDia.add(tSegDia.get(0));
				tPeriodo.add(tSegPer);
			}
		
		
		if(tTerDia !=null && !tTerDia.isEmpty())
			{
				tDia.add(tTerDia.get(0));
				tPeriodo.add(tTerPer);
			}
		
		
		if(tQuaDia !=null && !tQuaDia.isEmpty())
		{
			tDia.add(tQuaDia.get(0));
			tPeriodo.add(tQuaPer);
		}
		
		
		if(tQuiDia !=null && !tQuiDia.isEmpty())
		{
			tDia.add(tQuiDia.get(0));
			tPeriodo.add(tQuiPer);
		}
		
		
		if(tSexDia !=null && !tSexDia.isEmpty())
		{
			tDia.add(tSexDia.get(0));
			tPeriodo.add(tSexPer);
		}
		
		
		if(tSabDia !=null && !tSabDia.isEmpty())
		{
			tDia.add(tSabDia.get(0));
			tPeriodo.add(tSabPer);
		}
		
		System.out.println("------------------------Inlcuir:   ------------------------------");
		System.out.println(tDia);
		System.out.println(tPeriodo);
		
		for(int i =0; i< tDia.size(); i++)
		{
			
				System.out.println("  Dia: "+tDia.get(i)+"  Perido: "+ tPeriodo.get(i));
		}
	}
	
	public String agendaTrabMedico()
	{
		return "agendaTrabMedico";
	}




	public String gettEspecialidade() {
		return tEspecialidade;
	}


	public void settEspecialidade(String tEspecialidade) {
		this.tEspecialidade = tEspecialidade;
	}


	public List<Integer> gettPeriodo() {
		return tPeriodo;
	}


	public List<Integer> gettDia() {
		return tDia;
	}

	public List<Integer> gettSegDia() {
		return tSegDia;
	}

	public void settSegDia(List<Integer> tSegDia) {
		this.tSegDia = tSegDia;
	}

	public List<Integer> gettTerDia() {
		return tTerDia;
	}

	public void settTerDia(List<Integer> tTerDia) {
		this.tTerDia = tTerDia;
	}

	public List<Integer> gettQuaDia() {
		return tQuaDia;
	}

	public void settQuaDia(List<Integer> tQuaDia) {
		this.tQuaDia = tQuaDia;
	}

	public List<Integer> gettQuiDia() {
		return tQuiDia;
	}

	public void settQuiDia(List<Integer> tQuiDia) {
		this.tQuiDia = tQuiDia;
	}

	public List<Integer> gettSexDia() {
		return tSexDia;
	}

	public void settSexDia(List<Integer> tSexDia) {
		this.tSexDia = tSexDia;
	}

	public List<Integer> gettSabDia() {
		return tSabDia;
	}

	public void settSabDia(List<Integer> tSabDia) {
		this.tSabDia = tSabDia;
	}

	public List<Integer> gettDomDia() {
		return tDomDia;
	}

	public void settDomDia(List<Integer> tDomDia) {
		this.tDomDia = tDomDia;
	}

	public List<Integer> gettSegPer() {
		return tSegPer;
	}

	public void settSegPer(List<Integer> tSegPer) {
		this.tSegPer = tSegPer;
	}

	public List<Integer> gettTerPer() {
		return tTerPer;
	}

	public void settTerPer(List<Integer> tTerPer) {
		this.tTerPer = tTerPer;
	}

	public List<Integer> gettQuaPer() {
		return tQuaPer;
	}

	public void settQuaPer(List<Integer> tQuaPer) {
		this.tQuaPer = tQuaPer;
	}

	public List<Integer> gettQuiPer() {
		return tQuiPer;
	}

	public void settQuiPer(List<Integer> tQuiPer) {
		this.tQuiPer = tQuiPer;
	}

	public List<Integer> gettSexPer() {
		return tSexPer;
	}

	public void settSexPer(List<Integer> tSexPer) {
		this.tSexPer = tSexPer;
	}

	public List<Integer> gettSabPer() {
		return tSabPer;
	}

	public void settSabPer(List<Integer> tSabPer) {
		this.tSabPer = tSabPer;
	}

	public List<Integer> gettDomPer() {
		return tDomPer;
	}

	public void settDomPer(List<Integer> tDomPer) {
		this.tDomPer = tDomPer;
	}

	public String gettClinica() {
		return tClinica;
	}

	public void settClinica(String tClinica) {
		this.tClinica = tClinica;
	}

	public MedicoModel getMedicoModel() {
		return medicoModel;
	}

	public void setMedicoModel(MedicoModel medicoModel) {
		this.medicoModel = medicoModel;
	}

	public Medico getMedico() {
		return medico;
	}

	public void setMedico(Medico medico) {
		this.medico = medico;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public void settDia(List tDia) {
		this.tDia = tDia;
	}

	public void settPeriodo(List tPeriodo) {
		this.tPeriodo = tPeriodo;
	}

	public void settHora(Time tHora) {
		this.tHora = tHora;
	}



	public Time gettHora() {
		return tHora;
	}



	public void settHor(int tHor) {
		this.tHor = tHor;
	}



	public int gettHor() {
		return tHor;
	}



}
